---
title: Configuration settings
summary: Configuration keys consumed by this library, retrieval methods, and runtime dependencies.
status: draft
owner: SAIF Documentation Generator
last_reviewed: 2026-08-21
library: SAIF.Business.Claim.Legal
reference_type: embedded
---

# Configuration settings

`SAIF.Business.Claim.Legal` is a configuration-light library. Despite being the largest library in the solution (~22,677 LOC, 47 source files), it reads exactly two named configuration values, both from the SAIF environment service and both confined to `Print\clsLetterRequest.vb`. It reads no `AppSettings`, defines no connection strings, holds no secrets, and declares no application-scoped settings. Its real environment dependence is expressed through the environment classification itself: five call sites compare `GetApplicationEnvironment()` against `ApplicationEnvironment.Prod` and propagate a `testing` boolean into `clsAssignmentProcess`, which governs whether Exchange calendar entries and notification e-mails go to real attorneys or to test mailboxes.

## Configuration retrieval methods

| Method | Class / Interface | Namespace | Usage pattern |
| --- | --- | --- | --- |
| `GetConfigSetting(<key>)` | `AppGlobal.EnvironmentService` | `SAIF.Framework.Security` | Retrieves a named plain-text configuration value; 2 call sites |
| `GetApplicationEnvironment()` | `AppGlobal.EnvironmentService` | `SAIF.Framework.Security` | Returns the current `ApplicationEnvironment` classification; compared against `Prod` at 5 call sites |

## Environment API settings

Settings retrieved via `IEnvironmentService` (centralized environment configuration service).

| Setting key | Method | Data type | Purpose | Consuming class | Source |
| --- | --- | --- | --- | --- | --- |
| `xpressionsoutputdocumentspath` | `GetConfigSetting` | String | Filesystem/UNC path where Xpressions-generated legal letter output documents are written/read | `clsLetterRequest` | `SAIF.Business.Claim.Legal\Print\clsLetterRequest.vb:345` |
| `Legal.LettersManagingAttorneyUserId` | `GetConfigSetting` | String | User ID of the managing attorney stamped onto generated legal letters/letter requests | `clsLetterRequest` | `SAIF.Business.Claim.Legal\Print\clsLetterRequest.vb:478` |

### Environment classification checks

| # | API call | Comparison | Source | Effect |
| --- | --- | --- | --- | --- |
| 1 | `GetApplicationEnvironment()` | `<> ApplicationEnvironment.Prod` | `SAIF.Business.Claim.Legal\LegalNet\clsConsolidations.vb:264` | Sets the `testing` flag passed into the consolidation/assignment path |
| 2 | `GetApplicationEnvironment()` | `<> ApplicationEnvironment.Prod` | `SAIF.Business.Claim.Legal\LegalNet\clsConsolidations.vb:463` | As above (second consolidation entry point) |
| 3 | `GetApplicationEnvironment()` | `<> ApplicationEnvironment.Prod` | `SAIF.Business.Claim.Legal\LegalNet\clsLegalSchedule.vb:538` | Sets `testing` for schedule-driven notification |
| 4 | `GetApplicationEnvironment()` | `<> ApplicationEnvironment.Prod` | `SAIF.Business.Claim.Legal\LegalNet\clsLegalSchedule.vb:559` | As above (second schedule entry point) |
| 5 | `GetApplicationEnvironment()` | `<> ApplicationEnvironment.Prod` | `SAIF.Business.Claim.Legal\TableMaint\clsAttorneySchedule.vb:239` | Sets `testing` for attorney-schedule notification |

The resulting boolean is passed into the `clsAssignmentProcess` constructor (`LegalNet\clsAssignmentProcess.vb:411`) as the `testing` argument, which redirects Exchange/Outlook calendar writes and outbound e-mail to test mailboxes (`ztstatt2`, `ztstatt3`, `ztstatt4`) in every non-production environment.*

⚠️ **Non-prod-inclusive logic:** the check is `<> Prod`, so any environment that is not explicitly classified as Production (including a misconfigured one) takes the test path. Conversely, if the environment service reports `Prod` in a lower environment, real attorney mailboxes would be written to.*

## AppSettings (Web.config)

**None.** There is no `ConfigurationManager.AppSettings` access anywhere in this library's 47 `.vb` files. `SAIF.Business.Claim.Legal\app.config` and `Web.config` declare no `<appSettings>` entries — only the `oracle.manageddataaccess.client` configSection, `DbProviderFactories` registration, and assembly binding redirects.

The hosting application (`LegalMaintenance\Web.config`) declares `ApplicationHost = np17`, but this key is not consumed anywhere in `SAIF.Business.Claim.Legal`.*

## Database connection configuration

| Connection name | Provider | Retrieval method | Purpose | Source |
| --- | --- | --- | --- | --- |
| *(none declared)* | Oracle.ManagedDataAccess.Client (ODP.NET Managed Driver, 4.122.21.1 / NuGet 21.5.0) | Resolved by the SAIF BOF data portal (`IDataPortalInfo`) at runtime | Oracle database access for all criteria/collection loads | `SAIF.Business.Claim.Legal\app.config` |

No `<connectionStrings>` element exists in the library's own config files; the host `Web.config` declares only an empty `<connectionStrings />` element. The connecting Oracle user/schema and TNS/service-name target cannot be determined from this repository.**

## Secure settings

**None.** Zero `GetSecureConfigSetting` calls, zero hashing of config values, zero encrypted config sections, and zero credentials/API keys/tokens found in source. Both configuration keys in this library are retrieved as plain text; neither is a credential, though both are environment-sensitive/business-sensitive (see table above).

## Transitive configuration (from dependencies)

`SAIF.Business.Claim.Legal` project-references `SAIF.Business.Claim`, `SAIF.Business.View.Policy`, and `SAIF.Services.Appworx` (the last with no code usage found). Configuration required by the first two may surface at runtime through this library's operations and should be reconciled with their own Stage 1d-config analyses — this was not scanned as part of this task.*

| Setting key | Method | Source dependency | Dependency type | Purpose |
| --- | --- | --- | --- | --- |
| *(not scanned)* | — | `SAIF.Business.Claim` | Project Reference | Consumed via `clsClaimData.GetData`; transitive config unknown** |
| *(not scanned)* | — | `SAIF.Business.View.Policy` | Project Reference | Consumed via `clsPolicyData.GetPolicyData`; transitive config unknown** |

## Configuration dependencies

| Dependency | Type | Required at | Impact if missing |
| --- | --- | --- | --- |
| `xpressionsoutputdocumentspath` environment setting | Environment service | Runtime (letter generation) | Xpressions letters fail to write or are written to a wrong/unavailable path |
| `Legal.LettersManagingAttorneyUserId` environment setting | Environment service | Runtime (letter generation) | Wrong attorney attributed on outbound legal correspondence |
| `GetApplicationEnvironment()` classification | Environment service | Runtime (assignment, consolidation, scheduling) | Misclassification can send real e-mail / write real attorney calendars from a lower environment, or vice versa |
| Oracle connection (portal-resolved) | BOF `IDataPortalInfo` / framework | Startup/runtime | All persistence in this library fails without a resolvable Oracle connection |
| `clsProperties.XMLPath` (Exchange configuration XML path) | External (not in this repository) | Runtime (`clsAssignmentProcess`) | Exchange/Outlook calendar sync fails; origin and configuration source could not be verified** |

## Related documentation
- [Library index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- `SAIF.Business.Claim.Legal\app.config`
- `SAIF.Business.Claim.Legal\Print\clsLetterRequest.vb`
- `SAIF.Business.Claim.Legal\LegalNet\clsConsolidations.vb`
- `SAIF.Business.Claim.Legal\LegalNet\clsLegalSchedule.vb`
- `SAIF.Business.Claim.Legal\TableMaint\clsAttorneySchedule.vb`
- `SAIF.Business.Claim.Legal\LegalNet\clsAssignmentProcess.vb`
- `SAIF.Business.Claim.Legal\My Project\Settings.Designer.vb`
- `LegalMaintenance\Web.config`
